iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
Software Development

Python 微進階系列 第 7

Python 微進階 Day07 - dict(字典)

  • 分享至 

  • xImage
  •  

dict

  • 使用 {}dict() 建立
  • 語法:{key1:value1, key2:value2, ..}
  • key 為唯一,若不存在則會建立新的
  • {}False
  • 無序的,可以改變內容與大小

key 與 value

  • dict.keys():取得所有的 key
  • dict.values():取得所有的 value
  • dict.items():取得所有的 (key:value) 的 tuple
  • 使用 list(dict.keys()) 取得所有 key 並轉成 list,或是使用 for 迴圈
  • 3.7 開始,keys()會依照建立的順序排序

取值

  • 使用 dict[key]:無此 key 時會跳錯,若給值 dict[key] = value 則新增此 key:value
  • 使用 dict.get(key, None):無此 key 時會跳出第 2 個參數的值,預設為 None
  • 使用 dict.setdefault(key, None):無此 key 時會跳出第 2 個參數的值,預設為 None,並且新增此 key:value
  • dict.setdefault(key,default_value) 等同 dict[key] = dict.get(key,default_value)
x = {
    "key1":"value2"
}

x.get("key2")
# None

x
# {'key1': 'value2'}

x.setdefault("key3", 3)
# 3

x
# {'key1': 'value2', 'key3': 3}

other

  • update():將另一個 dict 更新到原本的 dict,同 key 的話,value 會被新的蓋過,不同 key 的話則新增
  • copy():淺層 copy,深層 copy 請參考 list 淺拷貝(shallow)與深拷貝(deep)

比較

將目前談過的幾個類型作一個比較表

項目 順序 變動
list 有序 可變
tuple 有序 不可變
string 有序 不可變
set 無序 可變
dict 註 1 可變

註 1:dict 在 3.7 開始有照著建立順序,但是查詢還是靠 key 來進行

參考資料

次回

來聊聊流程控制吧!


上一篇
Python 微進階 Day06 - tuple(元組)、set(集合)
下一篇
Python 微進階 Day08 - 流程控制 - 1 - if、while、break、continue、pass
系列文
Python 微進階31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言